[iOS] Chromium for iOS がオープンソース化されたのでビルドしてみた
はじめに
こんばんは。モバイルアプリサービス部の平屋です。
オープンソースのウェブブラウザプロジェクト「Chromium」のブログに、Chromium for iOS がオープンソース化されたという記事が投稿されていました。今回オープンソース化された「Chromium for iOS」と Google の製品「Chrome for iOS」の違いは Google による機能追加の有無だと思われます。
以下のガイドページを参考にして、環境構築からアプリの実行までを試してみましたので、本記事ではその手順を紹介していきます。
検証環境
- Xcode Version 8.2.1
- macOS Sierra 10.12.3
- java version 1.8.0_121
システム要件について
ガイドページに記載されているシステム要件は以下のとおりです。
- A 64-bit Mac running 10.11+.
- Xcode 8.0+.
- The OS X 10.10 SDK. Run
- The current version of the JDK (required for the Closure compiler).
depot_tools をインストールする
Chromium のソースコードの取得時などに使用するツール「depot_tools」を任意のディレクトリにインストールし、パスを通します。
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git $ export PATH=`pwd`/depot_tools:"$PATH"
ソースコードを取得する
プロジェクト用のディレクトリを作成し、「depot_tools」の fetch
コマンドを使用してソースコードを取得します。
リポジトリの完全な履歴が必要ない場合は、--no-history
オプションを付けることによって取得時間を短くできるようです。--no-history
オプションを付けてソースコード取得を実行してみたところ、20 分ぐらいで完了しました。
$ mkdir chromium && cd chromium $ fetch --no-history ios
取得が完了すると、「.gclient」ファイルと「src」ディレクトリがワーキングディレクトリの中に作成されます。
「src」ディレクトリに移動します。
$ cd src
setup-gn.py を実行する
「setup-gn.py」を実行し、ビルドの準備をします。
処理が完了すると、「out」ディレクトリの中に Release/Debug、実機/シミュレータなどの各環境向けのディレクトリが作成されます。
$ python ios/build/tools/setup-gn.py
ビルドする
ガイドページには Xcode または ninja
コマンドを使用してビルドできると書いてあります。
今回は ninja
コマンドを使用してビルドしました。以下のコマンドを実行すると、シミュレータ向けのデバッグビルドが実行されます。
ビルドが完了するまで 3時間ぐらいかかりました!
$ ninja -C out/Debug-iphonesimulator gn_all
アプリをインストールする
ビルドが完了すると、各環境向けのディレクトリ内に「Chromium.app」ファイルが生成されていることを確認できます。
今回はシミュレータ向けのデバッグビルドを行ったので、「out/Debug-iphonesimulator」ディレクトリ内に「Chromium.app」ファイルが生成されました。
iOS シミュレータのウィンドウの中に「Chromium.app」ファイルをドラッグし、iOS シミュレータにアプリをインストールしました。
アプリを実行する
iOS シミュレータでアプリを実行してみました。見た目はほとんど Chrome と同じですね。
Xcode で開く
「out/build」ディレクトリ内に生成される「products.xcodeproj」ファイルを開くと、ソースコードを Xcode で表示できます。大量のファイルが含まれていて、少し見ただけでは全体を把握できませんでした!
さいごに
本記事では、iOS 向けの Chromium をシミュレータで実行するまでの手順を紹介しました。
ちょっと動かしてみようと思って触り始めたのですが、予想以上に時間がかかってしまい (ほとんど待ち時間)、今回はアプリの実行までで終わりました。今後、ソースコードの内容などを見ていきたいと思います。